package model;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

public class EmployeeExample {
    protected String orderByClause;

    protected boolean distinct;

    protected List<Criteria> oredCriteria;

    public EmployeeExample() {
        oredCriteria = new ArrayList<Criteria>();
    }

    public void setOrderByClause(String orderByClause) {
        this.orderByClause = orderByClause;
    }

    public String getOrderByClause() {
        return orderByClause;
    }

    public void setDistinct(boolean distinct) {
        this.distinct = distinct;
    }

    public boolean isDistinct() {
        return distinct;
    }

    public List<Criteria> getOredCriteria() {
        return oredCriteria;
    }

    public void or(Criteria criteria) {
        oredCriteria.add(criteria);
    }

    public Criteria or() {
        Criteria criteria = createCriteriaInternal();
        oredCriteria.add(criteria);
        return criteria;
    }

    public Criteria createCriteria() {
        Criteria criteria = createCriteriaInternal();
        if (oredCriteria.size() == 0) {
            oredCriteria.add(criteria);
        }
        return criteria;
    }

    protected Criteria createCriteriaInternal() {
        Criteria criteria = new Criteria();
        return criteria;
    }

    public void clear() {
        oredCriteria.clear();
        orderByClause = null;
        distinct = false;
    }

    protected abstract static class GeneratedCriteria {
        protected List<Criterion> criteria;

        protected GeneratedCriteria() {
            super();
            criteria = new ArrayList<Criterion>();
        }

        public boolean isValid() {
            return criteria.size() > 0;
        }

        public List<Criterion> getAllCriteria() {
            return criteria;
        }

        public List<Criterion> getCriteria() {
            return criteria;
        }

        protected void addCriterion(String condition) {
            if (condition == null) {
                throw new RuntimeException("Value for condition cannot be null");
            }
            criteria.add(new Criterion(condition));
        }

        protected void addCriterion(String condition, Object value, String property) {
            if (value == null) {
                throw new RuntimeException("Value for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value));
        }

        protected void addCriterion(String condition, Object value1, Object value2, String property) {
            if (value1 == null || value2 == null) {
                throw new RuntimeException("Between values for " + property + " cannot be null");
            }
            criteria.add(new Criterion(condition, value1, value2));
        }

        public Criteria andEmployeeidIsNull() {
            addCriterion("employeeID is null");
            return (Criteria) this;
        }

        public Criteria andEmployeeidIsNotNull() {
            addCriterion("employeeID is not null");
            return (Criteria) this;
        }

        public Criteria andEmployeeidEqualTo(Integer value) {
            addCriterion("employeeID =", value, "employeeid");
            return (Criteria) this;
        }

        public Criteria andEmployeeidNotEqualTo(Integer value) {
            addCriterion("employeeID <>", value, "employeeid");
            return (Criteria) this;
        }

        public Criteria andEmployeeidGreaterThan(Integer value) {
            addCriterion("employeeID >", value, "employeeid");
            return (Criteria) this;
        }

        public Criteria andEmployeeidGreaterThanOrEqualTo(Integer value) {
            addCriterion("employeeID >=", value, "employeeid");
            return (Criteria) this;
        }

        public Criteria andEmployeeidLessThan(Integer value) {
            addCriterion("employeeID <", value, "employeeid");
            return (Criteria) this;
        }

        public Criteria andEmployeeidLessThanOrEqualTo(Integer value) {
            addCriterion("employeeID <=", value, "employeeid");
            return (Criteria) this;
        }

        public Criteria andEmployeeidIn(List<Integer> values) {
            addCriterion("employeeID in", values, "employeeid");
            return (Criteria) this;
        }

        public Criteria andEmployeeidNotIn(List<Integer> values) {
            addCriterion("employeeID not in", values, "employeeid");
            return (Criteria) this;
        }

        public Criteria andEmployeeidBetween(Integer value1, Integer value2) {
            addCriterion("employeeID between", value1, value2, "employeeid");
            return (Criteria) this;
        }

        public Criteria andEmployeeidNotBetween(Integer value1, Integer value2) {
            addCriterion("employeeID not between", value1, value2, "employeeid");
            return (Criteria) this;
        }

        public Criteria andEmployeenameIsNull() {
            addCriterion("employeeName is null");
            return (Criteria) this;
        }

        public Criteria andEmployeenameIsNotNull() {
            addCriterion("employeeName is not null");
            return (Criteria) this;
        }

        public Criteria andEmployeenameEqualTo(String value) {
            addCriterion("employeeName =", value, "employeename");
            return (Criteria) this;
        }

        public Criteria andEmployeenameNotEqualTo(String value) {
            addCriterion("employeeName <>", value, "employeename");
            return (Criteria) this;
        }

        public Criteria andEmployeenameGreaterThan(String value) {
            addCriterion("employeeName >", value, "employeename");
            return (Criteria) this;
        }

        public Criteria andEmployeenameGreaterThanOrEqualTo(String value) {
            addCriterion("employeeName >=", value, "employeename");
            return (Criteria) this;
        }

        public Criteria andEmployeenameLessThan(String value) {
            addCriterion("employeeName <", value, "employeename");
            return (Criteria) this;
        }

        public Criteria andEmployeenameLessThanOrEqualTo(String value) {
            addCriterion("employeeName <=", value, "employeename");
            return (Criteria) this;
        }

        public Criteria andEmployeenameLike(String value) {
            addCriterion("employeeName like", value, "employeename");
            return (Criteria) this;
        }

        public Criteria andEmployeenameNotLike(String value) {
            addCriterion("employeeName not like", value, "employeename");
            return (Criteria) this;
        }

        public Criteria andEmployeenameIn(List<String> values) {
            addCriterion("employeeName in", values, "employeename");
            return (Criteria) this;
        }

        public Criteria andEmployeenameNotIn(List<String> values) {
            addCriterion("employeeName not in", values, "employeename");
            return (Criteria) this;
        }

        public Criteria andEmployeenameBetween(String value1, String value2) {
            addCriterion("employeeName between", value1, value2, "employeename");
            return (Criteria) this;
        }

        public Criteria andEmployeenameNotBetween(String value1, String value2) {
            addCriterion("employeeName not between", value1, value2, "employeename");
            return (Criteria) this;
        }

        public Criteria andEmployeesexIsNull() {
            addCriterion("employeeSex is null");
            return (Criteria) this;
        }

        public Criteria andEmployeesexIsNotNull() {
            addCriterion("employeeSex is not null");
            return (Criteria) this;
        }

        public Criteria andEmployeesexEqualTo(String value) {
            addCriterion("employeeSex =", value, "employeesex");
            return (Criteria) this;
        }

        public Criteria andEmployeesexNotEqualTo(String value) {
            addCriterion("employeeSex <>", value, "employeesex");
            return (Criteria) this;
        }

        public Criteria andEmployeesexGreaterThan(String value) {
            addCriterion("employeeSex >", value, "employeesex");
            return (Criteria) this;
        }

        public Criteria andEmployeesexGreaterThanOrEqualTo(String value) {
            addCriterion("employeeSex >=", value, "employeesex");
            return (Criteria) this;
        }

        public Criteria andEmployeesexLessThan(String value) {
            addCriterion("employeeSex <", value, "employeesex");
            return (Criteria) this;
        }

        public Criteria andEmployeesexLessThanOrEqualTo(String value) {
            addCriterion("employeeSex <=", value, "employeesex");
            return (Criteria) this;
        }

        public Criteria andEmployeesexLike(String value) {
            addCriterion("employeeSex like", value, "employeesex");
            return (Criteria) this;
        }

        public Criteria andEmployeesexNotLike(String value) {
            addCriterion("employeeSex not like", value, "employeesex");
            return (Criteria) this;
        }

        public Criteria andEmployeesexIn(List<String> values) {
            addCriterion("employeeSex in", values, "employeesex");
            return (Criteria) this;
        }

        public Criteria andEmployeesexNotIn(List<String> values) {
            addCriterion("employeeSex not in", values, "employeesex");
            return (Criteria) this;
        }

        public Criteria andEmployeesexBetween(String value1, String value2) {
            addCriterion("employeeSex between", value1, value2, "employeesex");
            return (Criteria) this;
        }

        public Criteria andEmployeesexNotBetween(String value1, String value2) {
            addCriterion("employeeSex not between", value1, value2, "employeesex");
            return (Criteria) this;
        }

        public Criteria andEmployeebirthIsNull() {
            addCriterion("employeeBirth is null");
            return (Criteria) this;
        }

        public Criteria andEmployeebirthIsNotNull() {
            addCriterion("employeeBirth is not null");
            return (Criteria) this;
        }

        public Criteria andEmployeebirthEqualTo(Date value) {
            addCriterion("employeeBirth =", value, "employeebirth");
            return (Criteria) this;
        }

        public Criteria andEmployeebirthNotEqualTo(Date value) {
            addCriterion("employeeBirth <>", value, "employeebirth");
            return (Criteria) this;
        }

        public Criteria andEmployeebirthGreaterThan(Date value) {
            addCriterion("employeeBirth >", value, "employeebirth");
            return (Criteria) this;
        }

        public Criteria andEmployeebirthGreaterThanOrEqualTo(Date value) {
            addCriterion("employeeBirth >=", value, "employeebirth");
            return (Criteria) this;
        }

        public Criteria andEmployeebirthLessThan(Date value) {
            addCriterion("employeeBirth <", value, "employeebirth");
            return (Criteria) this;
        }

        public Criteria andEmployeebirthLessThanOrEqualTo(Date value) {
            addCriterion("employeeBirth <=", value, "employeebirth");
            return (Criteria) this;
        }

        public Criteria andEmployeebirthIn(List<Date> values) {
            addCriterion("employeeBirth in", values, "employeebirth");
            return (Criteria) this;
        }

        public Criteria andEmployeebirthNotIn(List<Date> values) {
            addCriterion("employeeBirth not in", values, "employeebirth");
            return (Criteria) this;
        }

        public Criteria andEmployeebirthBetween(Date value1, Date value2) {
            addCriterion("employeeBirth between", value1, value2, "employeebirth");
            return (Criteria) this;
        }

        public Criteria andEmployeebirthNotBetween(Date value1, Date value2) {
            addCriterion("employeeBirth not between", value1, value2, "employeebirth");
            return (Criteria) this;
        }

        public Criteria andEmployeeeduIsNull() {
            addCriterion("employeeEdu is null");
            return (Criteria) this;
        }

        public Criteria andEmployeeeduIsNotNull() {
            addCriterion("employeeEdu is not null");
            return (Criteria) this;
        }

        public Criteria andEmployeeeduEqualTo(String value) {
            addCriterion("employeeEdu =", value, "employeeedu");
            return (Criteria) this;
        }

        public Criteria andEmployeeeduNotEqualTo(String value) {
            addCriterion("employeeEdu <>", value, "employeeedu");
            return (Criteria) this;
        }

        public Criteria andEmployeeeduGreaterThan(String value) {
            addCriterion("employeeEdu >", value, "employeeedu");
            return (Criteria) this;
        }

        public Criteria andEmployeeeduGreaterThanOrEqualTo(String value) {
            addCriterion("employeeEdu >=", value, "employeeedu");
            return (Criteria) this;
        }

        public Criteria andEmployeeeduLessThan(String value) {
            addCriterion("employeeEdu <", value, "employeeedu");
            return (Criteria) this;
        }

        public Criteria andEmployeeeduLessThanOrEqualTo(String value) {
            addCriterion("employeeEdu <=", value, "employeeedu");
            return (Criteria) this;
        }

        public Criteria andEmployeeeduLike(String value) {
            addCriterion("employeeEdu like", value, "employeeedu");
            return (Criteria) this;
        }

        public Criteria andEmployeeeduNotLike(String value) {
            addCriterion("employeeEdu not like", value, "employeeedu");
            return (Criteria) this;
        }

        public Criteria andEmployeeeduIn(List<String> values) {
            addCriterion("employeeEdu in", values, "employeeedu");
            return (Criteria) this;
        }

        public Criteria andEmployeeeduNotIn(List<String> values) {
            addCriterion("employeeEdu not in", values, "employeeedu");
            return (Criteria) this;
        }

        public Criteria andEmployeeeduBetween(String value1, String value2) {
            addCriterion("employeeEdu between", value1, value2, "employeeedu");
            return (Criteria) this;
        }

        public Criteria andEmployeeeduNotBetween(String value1, String value2) {
            addCriterion("employeeEdu not between", value1, value2, "employeeedu");
            return (Criteria) this;
        }

        public Criteria andEmployeemarryIsNull() {
            addCriterion("employeeMarry is null");
            return (Criteria) this;
        }

        public Criteria andEmployeemarryIsNotNull() {
            addCriterion("employeeMarry is not null");
            return (Criteria) this;
        }

        public Criteria andEmployeemarryEqualTo(String value) {
            addCriterion("employeeMarry =", value, "employeemarry");
            return (Criteria) this;
        }

        public Criteria andEmployeemarryNotEqualTo(String value) {
            addCriterion("employeeMarry <>", value, "employeemarry");
            return (Criteria) this;
        }

        public Criteria andEmployeemarryGreaterThan(String value) {
            addCriterion("employeeMarry >", value, "employeemarry");
            return (Criteria) this;
        }

        public Criteria andEmployeemarryGreaterThanOrEqualTo(String value) {
            addCriterion("employeeMarry >=", value, "employeemarry");
            return (Criteria) this;
        }

        public Criteria andEmployeemarryLessThan(String value) {
            addCriterion("employeeMarry <", value, "employeemarry");
            return (Criteria) this;
        }

        public Criteria andEmployeemarryLessThanOrEqualTo(String value) {
            addCriterion("employeeMarry <=", value, "employeemarry");
            return (Criteria) this;
        }

        public Criteria andEmployeemarryLike(String value) {
            addCriterion("employeeMarry like", value, "employeemarry");
            return (Criteria) this;
        }

        public Criteria andEmployeemarryNotLike(String value) {
            addCriterion("employeeMarry not like", value, "employeemarry");
            return (Criteria) this;
        }

        public Criteria andEmployeemarryIn(List<String> values) {
            addCriterion("employeeMarry in", values, "employeemarry");
            return (Criteria) this;
        }

        public Criteria andEmployeemarryNotIn(List<String> values) {
            addCriterion("employeeMarry not in", values, "employeemarry");
            return (Criteria) this;
        }

        public Criteria andEmployeemarryBetween(String value1, String value2) {
            addCriterion("employeeMarry between", value1, value2, "employeemarry");
            return (Criteria) this;
        }

        public Criteria andEmployeemarryNotBetween(String value1, String value2) {
            addCriterion("employeeMarry not between", value1, value2, "employeemarry");
            return (Criteria) this;
        }

        public Criteria andEmployeeworktimeIsNull() {
            addCriterion("employeeWorkTime is null");
            return (Criteria) this;
        }

        public Criteria andEmployeeworktimeIsNotNull() {
            addCriterion("employeeWorkTime is not null");
            return (Criteria) this;
        }

        public Criteria andEmployeeworktimeEqualTo(Date value) {
            addCriterion("employeeWorkTime =", value, "employeeworktime");
            return (Criteria) this;
        }

        public Criteria andEmployeeworktimeNotEqualTo(Date value) {
            addCriterion("employeeWorkTime <>", value, "employeeworktime");
            return (Criteria) this;
        }

        public Criteria andEmployeeworktimeGreaterThan(Date value) {
            addCriterion("employeeWorkTime >", value, "employeeworktime");
            return (Criteria) this;
        }

        public Criteria andEmployeeworktimeGreaterThanOrEqualTo(Date value) {
            addCriterion("employeeWorkTime >=", value, "employeeworktime");
            return (Criteria) this;
        }

        public Criteria andEmployeeworktimeLessThan(Date value) {
            addCriterion("employeeWorkTime <", value, "employeeworktime");
            return (Criteria) this;
        }

        public Criteria andEmployeeworktimeLessThanOrEqualTo(Date value) {
            addCriterion("employeeWorkTime <=", value, "employeeworktime");
            return (Criteria) this;
        }

        public Criteria andEmployeeworktimeIn(List<Date> values) {
            addCriterion("employeeWorkTime in", values, "employeeworktime");
            return (Criteria) this;
        }

        public Criteria andEmployeeworktimeNotIn(List<Date> values) {
            addCriterion("employeeWorkTime not in", values, "employeeworktime");
            return (Criteria) this;
        }

        public Criteria andEmployeeworktimeBetween(Date value1, Date value2) {
            addCriterion("employeeWorkTime between", value1, value2, "employeeworktime");
            return (Criteria) this;
        }

        public Criteria andEmployeeworktimeNotBetween(Date value1, Date value2) {
            addCriterion("employeeWorkTime not between", value1, value2, "employeeworktime");
            return (Criteria) this;
        }

        public Criteria andEmployeepostIsNull() {
            addCriterion("employeePost is null");
            return (Criteria) this;
        }

        public Criteria andEmployeepostIsNotNull() {
            addCriterion("employeePost is not null");
            return (Criteria) this;
        }

        public Criteria andEmployeepostEqualTo(String value) {
            addCriterion("employeePost =", value, "employeepost");
            return (Criteria) this;
        }

        public Criteria andEmployeepostNotEqualTo(String value) {
            addCriterion("employeePost <>", value, "employeepost");
            return (Criteria) this;
        }

        public Criteria andEmployeepostGreaterThan(String value) {
            addCriterion("employeePost >", value, "employeepost");
            return (Criteria) this;
        }

        public Criteria andEmployeepostGreaterThanOrEqualTo(String value) {
            addCriterion("employeePost >=", value, "employeepost");
            return (Criteria) this;
        }

        public Criteria andEmployeepostLessThan(String value) {
            addCriterion("employeePost <", value, "employeepost");
            return (Criteria) this;
        }

        public Criteria andEmployeepostLessThanOrEqualTo(String value) {
            addCriterion("employeePost <=", value, "employeepost");
            return (Criteria) this;
        }

        public Criteria andEmployeepostLike(String value) {
            addCriterion("employeePost like", value, "employeepost");
            return (Criteria) this;
        }

        public Criteria andEmployeepostNotLike(String value) {
            addCriterion("employeePost not like", value, "employeepost");
            return (Criteria) this;
        }

        public Criteria andEmployeepostIn(List<String> values) {
            addCriterion("employeePost in", values, "employeepost");
            return (Criteria) this;
        }

        public Criteria andEmployeepostNotIn(List<String> values) {
            addCriterion("employeePost not in", values, "employeepost");
            return (Criteria) this;
        }

        public Criteria andEmployeepostBetween(String value1, String value2) {
            addCriterion("employeePost between", value1, value2, "employeepost");
            return (Criteria) this;
        }

        public Criteria andEmployeepostNotBetween(String value1, String value2) {
            addCriterion("employeePost not between", value1, value2, "employeepost");
            return (Criteria) this;
        }

        public Criteria andEmployeememoIsNull() {
            addCriterion("employeeMemo is null");
            return (Criteria) this;
        }

        public Criteria andEmployeememoIsNotNull() {
            addCriterion("employeeMemo is not null");
            return (Criteria) this;
        }

        public Criteria andEmployeememoEqualTo(String value) {
            addCriterion("employeeMemo =", value, "employeememo");
            return (Criteria) this;
        }

        public Criteria andEmployeememoNotEqualTo(String value) {
            addCriterion("employeeMemo <>", value, "employeememo");
            return (Criteria) this;
        }

        public Criteria andEmployeememoGreaterThan(String value) {
            addCriterion("employeeMemo >", value, "employeememo");
            return (Criteria) this;
        }

        public Criteria andEmployeememoGreaterThanOrEqualTo(String value) {
            addCriterion("employeeMemo >=", value, "employeememo");
            return (Criteria) this;
        }

        public Criteria andEmployeememoLessThan(String value) {
            addCriterion("employeeMemo <", value, "employeememo");
            return (Criteria) this;
        }

        public Criteria andEmployeememoLessThanOrEqualTo(String value) {
            addCriterion("employeeMemo <=", value, "employeememo");
            return (Criteria) this;
        }

        public Criteria andEmployeememoLike(String value) {
            addCriterion("employeeMemo like", value, "employeememo");
            return (Criteria) this;
        }

        public Criteria andEmployeememoNotLike(String value) {
            addCriterion("employeeMemo not like", value, "employeememo");
            return (Criteria) this;
        }

        public Criteria andEmployeememoIn(List<String> values) {
            addCriterion("employeeMemo in", values, "employeememo");
            return (Criteria) this;
        }

        public Criteria andEmployeememoNotIn(List<String> values) {
            addCriterion("employeeMemo not in", values, "employeememo");
            return (Criteria) this;
        }

        public Criteria andEmployeememoBetween(String value1, String value2) {
            addCriterion("employeeMemo between", value1, value2, "employeememo");
            return (Criteria) this;
        }

        public Criteria andEmployeememoNotBetween(String value1, String value2) {
            addCriterion("employeeMemo not between", value1, value2, "employeememo");
            return (Criteria) this;
        }

        public Criteria andEmployeestateIsNull() {
            addCriterion("employeeState is null");
            return (Criteria) this;
        }

        public Criteria andEmployeestateIsNotNull() {
            addCriterion("employeeState is not null");
            return (Criteria) this;
        }

        public Criteria andEmployeestateEqualTo(String value) {
            addCriterion("employeeState =", value, "employeestate");
            return (Criteria) this;
        }

        public Criteria andEmployeestateNotEqualTo(String value) {
            addCriterion("employeeState <>", value, "employeestate");
            return (Criteria) this;
        }

        public Criteria andEmployeestateGreaterThan(String value) {
            addCriterion("employeeState >", value, "employeestate");
            return (Criteria) this;
        }

        public Criteria andEmployeestateGreaterThanOrEqualTo(String value) {
            addCriterion("employeeState >=", value, "employeestate");
            return (Criteria) this;
        }

        public Criteria andEmployeestateLessThan(String value) {
            addCriterion("employeeState <", value, "employeestate");
            return (Criteria) this;
        }

        public Criteria andEmployeestateLessThanOrEqualTo(String value) {
            addCriterion("employeeState <=", value, "employeestate");
            return (Criteria) this;
        }

        public Criteria andEmployeestateLike(String value) {
            addCriterion("employeeState like", value, "employeestate");
            return (Criteria) this;
        }

        public Criteria andEmployeestateNotLike(String value) {
            addCriterion("employeeState not like", value, "employeestate");
            return (Criteria) this;
        }

        public Criteria andEmployeestateIn(List<String> values) {
            addCriterion("employeeState in", values, "employeestate");
            return (Criteria) this;
        }

        public Criteria andEmployeestateNotIn(List<String> values) {
            addCriterion("employeeState not in", values, "employeestate");
            return (Criteria) this;
        }

        public Criteria andEmployeestateBetween(String value1, String value2) {
            addCriterion("employeeState between", value1, value2, "employeestate");
            return (Criteria) this;
        }

        public Criteria andEmployeestateNotBetween(String value1, String value2) {
            addCriterion("employeeState not between", value1, value2, "employeestate");
            return (Criteria) this;
        }
    }

    public static class Criteria extends GeneratedCriteria {

        protected Criteria() {
            super();
        }
    }

    public static class Criterion {
        private String condition;

        private Object value;

        private Object secondValue;

        private boolean noValue;

        private boolean singleValue;

        private boolean betweenValue;

        private boolean listValue;

        private String typeHandler;

        public String getCondition() {
            return condition;
        }

        public Object getValue() {
            return value;
        }

        public Object getSecondValue() {
            return secondValue;
        }

        public boolean isNoValue() {
            return noValue;
        }

        public boolean isSingleValue() {
            return singleValue;
        }

        public boolean isBetweenValue() {
            return betweenValue;
        }

        public boolean isListValue() {
            return listValue;
        }

        public String getTypeHandler() {
            return typeHandler;
        }

        protected Criterion(String condition) {
            super();
            this.condition = condition;
            this.typeHandler = null;
            this.noValue = true;
        }

        protected Criterion(String condition, Object value, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.typeHandler = typeHandler;
            if (value instanceof List<?>) {
                this.listValue = true;
            } else {
                this.singleValue = true;
            }
        }

        protected Criterion(String condition, Object value) {
            this(condition, value, null);
        }

        protected Criterion(String condition, Object value, Object secondValue, String typeHandler) {
            super();
            this.condition = condition;
            this.value = value;
            this.secondValue = secondValue;
            this.typeHandler = typeHandler;
            this.betweenValue = true;
        }

        protected Criterion(String condition, Object value, Object secondValue) {
            this(condition, value, secondValue, null);
        }
    }
}